class AREF{T}
****
Built-in arrays of elements of type T. Primarily intended to be included in reference classes that need an array portion in their objects. Array indices start at 0 and go up to "asize-1". All feature names begin with "a" to minimize name conflicts when include. None of the features work with void(self). This class is primarily meant to be included. ARRAY{T} provides an array abstraction that is meant to be used directly.


Descendants
INTI STR FSET{_} FMAP{_,_}
NAMEMAP ARRAY{_} AM_CALL_EXPR AM_ITER_CALL_EXPR
AM_EXT_CALL_EXPR AM_BND_ROUT_CALL_EXPR AM_BND_ITER_CALL_EXPR AM_ROUT_CALL_EXPR
LAYOUT_ARRAY AM_BND_CREATE_EXPR AM_ARRAY_EXPR AM_ROUT_DEF
CODE_FILE_ARRAY LAYOUT_ARR TP_ARRAY FLIST{_}
FSTR



Public


Features
aclear
**** Set each element of self to nil. Built-in.
acopy(src:SAME)
**** Copy as many elements from `src' to self as will fit. Built-in.
acopy(beg:INT, src:SAME)
**** Copy as many elements from `src' to self as will fit when starting at index `beg' of self.
acopy(beg,num:INT, src:SAME)
**** Copy `num' elements from `src' to self starting at index `beg' of self.
acopy(beg,num,srcbeg:INT, src:SAME)
**** Copy `num' elements from `src' to self starting at index `beg' of self and index `srcbeg' of `src'. Built-in.
aget(ind:INT):T
**** The element of self with index `ind'. Built-in.
aset(ind:INT, val:T)
**** Set the element of self with index `ind' to `val'. Built-in.
asize:INT
**** The number of elements in self. Classes which inherit this may replace this by a constant to get constant sized objects (and the compiler may optimize certain operations in this case). Built-in.
create(n:INT):SAME
**** A new array with `n' elements.

Iters
aelt!(once beg:INT):T
**** Yield each element of self starting at `beg'. Built-in.
aelt!(once beg,once num:INT):T
**** Yield `num' successive elements of self starting at index `beg'. Built-in.
aelt!(once beg,once num,once step:INT):T
**** Yield `num' elements of self starting at `beg' and stepping by `step' which must not be zero. Built-in.
aelt!:T
**** Yield each element of self in order. Built-in.
aind!:INT
**** Yield the indices of self in order.
aset!(val:T)
**** Set successive elements of self to the values `val'. Built-in.
aset!(once beg:INT,val:T)
**** Set successive elements of self starting at `beg' to the values `val'.
aset!(once beg,once num:INT,val:T)
**** Set `num' successive elements of self starting at `beg' to the values `val'.
aset!(once beg,once num,once step:INT, val:T)
**** Set `num' elements of self starting at `beg' stepping by `step' to the values `val'. `step' must not be zero.


Private

is_legal_aelts_arg( beg, num, step:INT) :BOOL
**** True if the arguments are legal values for `aelts'.